<?php
/**
 * Created by PhpStorm.
 * User: zhaiyujin
 * Date: 2018/8/18
 * Time: 14:23
 */
/**
 * 功能说明：tp提供除默认外6种运行模式 amf,cli,lite,phprpc,rest,thin
 * 模式说明：我们选择三种简单cli,lite,thin说明一下
 * 补充知识点：RPC是远端程序调用，客户端和服务端交换数据方式
 * amf:amf是rpc是rpc远程调用的工具，使php和flash进行交互(使用flash amf的封装协议)
 * phprpc：phprpc是rpc是rpc远程调用的工具，支持多种语言交互，具体不做说明。
 *
 */

include "Tool.php";//引入工具函数



/*
 * thin简洁模式
 * 代码流程走向：
 * url---->index.php入口------>加载配置及运行模式------>运行app核心模块方法取得模块名/方法名------->执行R函数来执行url对应文件*的操作<------>通过A来导入操作文件并实例化，在通过call_user_func_array函数来执行类方法
 * 代码规范：
 * url只可以使用兼容模式m=Index&a=a
 *
 */

//////////////////////////tp测试时的一些配置/////////////////////////
define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');//总根目录绝对地址
define('PROJECT_PATH',APP_PATH."tpRunMode/TestProjects/"); // 项目根目录目录
define('CORE_PATH',PROJECT_PATH.'Core/Lib/');//这是项目中存放系统核心类库目录
define('LIB_PATH',PROJECT_PATH."Lib");  //项目类库目录
define('LIBRARY_PATH',PROJECT_PATH.'Extends/Library/'); //第三方类扩展
define('MODE_PATH',APP_PATH."tpRunMode/Mode/");//系统配置运行模式路径
define('MODE_NAME',"thin");
C(
    [ 'VAR_MODULE'            => 'm',		// 系统默认模块获取变量
      'VAR_ACTION'            => 'a',		// 默认操作获取变量
      'DEFAULT_MODULE'        => 'Index', // 默认模块名称
      'DEFAULT_ACTION'        => 'index', // 默认操作名称
      //是否记录日志
      'LOG_RECORD'=>false,  // 进行日志记录
      //调试信息
      'SHOW_PAGE_TRACE'    =>true,					//开启trace信息
      'SHOW_RUN_TIME'      =>false,                    // 运行时间显示
      /* URL设置 */
      'URL_CASE_INSENSITIVE'  => false,   // 默认false 表示URL区分大小写 true则表示不区分大小写
      //异常报错模板
      'TMPL_EXCEPTION_FILE'   => PROJECT_PATH.'public/error/think_exception.tpl',// 异常页面的模板文件

      //数据库配置
      'DB_TYPE'           => 'mysql',
      'DB_HOST'           => '127.0.0.1',
      'DB_NAME'           =>'webroot',
      'DB_USER'           =>'root',
      'DB_PWD'            =>'root',
      'DB_PORT'           =>'3306',
      'DB_PREFIX'         =>'lzh_',
]);

L([//定义语言
    '_ERROR_ACTION_'=>      '非法操作',]);

//-------run
if(defined('MODE_NAME')) {
    //引入指定配置运行模式文件
    $mode   = include MODE_PATH.strtolower(MODE_NAME).'.php';
}else{
    $mode   =  array();
}
//注册一个自动加载函数来实现类加载
spl_autoload_register(function ($class) {
    $getclass=$class;
    include MODE_PATH.ucfirst(strtolower(MODE_NAME)).'/'.$getclass.'.class.php';
});

APP::run();
